const swaggerJsdoc = require('swagger-jsdoc');

const options = {
    // 基础信息 (Swagger/OpenAPI 的元数据)
    definition: {
        openapi: '3.0.0',
        info: {
            title: '服务器 API 文档',
            version: '1.0.0',
            description: '基于 Node.js, Express, MongoDB, Redis 构建的完整服务器模板 API。',
            contact: {
                name: 'ShiDianZhuo',
                email: 'your_email@example.com',
            },
        },
        servers: [
            {
                url: `http://localhost:${process.env.PORT || 3000}/api`,
                description: '开发服务器',
            },
        ],
        // 认证方式 (JWT Bearer Token)
        components: {
            securitySchemes: {
                bearerAuth: {
                    type: 'http',
                    scheme: 'bearer',
                    bearerFormat: 'JWT',
                },
            },
        },
        security: [
            {
                bearerAuth: [],
            },
        ],
    },
    // API 文档存放路径 (告诉 swagger-jsdoc 去哪里找带注释的路由文件)
    apis: [
        './routes/*.js', // 扫描 routes 文件夹下所有 JS 文件
        './controllers/*.js', // 也可以扫描 controllers 文件
    ],
};

const specs = swaggerJsdoc(options);

module.exports = specs;
